package edu.cuit.zhuyimeng.framework.logging.aspect;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.Map;

@Data
public class OperateLogBO {

    /**
     * 用户编号
     */
    private String userId;

    /**
     * 操作模块
     */
    private String module;

    /**
     * 操作名
     */
    private String name;

    /**
     * 操作分类
     */
    private Integer type;

    /**
     * 操作明细
     */
    private String content;

    /**
     * 拓展字段
     */
    private Map<String, Object> extend;

    /**
     * 请求方法名
     */
    private String requestMethod;

    /**
     * 请求地址
     */
    private String requestUrl;

    /**
     * Java 方法名
     */
    private String javaMethod;

    /**
     * Java 方法的参数
     */
    private String javaMethodArgs;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 执行时长，单位：毫秒
     */
    private Integer duration;

    /**
     * 结果码
     */
    private Integer resultCode;

    /**
     * 结果提示
     */
    private String resultMsg;

    /**
     * 结果数据
     */
    private String resultData;

    @Override
    public String toString() {
        return "\n==========操作日志==========\n" +
                "用户编号='" + userId + '\'' +
                ", 操作模块='" + module + '\'' +
                ", 操作名='" + name + '\'' +
                ", 操作分类=" + type + '\n' +
                "操作明细='" + content + "'\n" +
                "拓展字段=" + extend + '\n' +
                "请求方法名='" + requestMethod + '\'' +
                ", 请求地址='" + requestUrl + "'\n" +
                "Java 方法名='" + javaMethod + "'\n" +
                "Java 方法的参数='" + javaMethodArgs + "'\n" +
                "开始时间=" + startTime +
                ", 执行时长=" + duration + "毫秒\n" +
                "结果码=" + resultCode +
                ", 结果提示='" + resultMsg + "'\n" +
                "==========================\n";
    }



}
